package com.my12306.user.service.auth;

import com.baomidou.mybatisplus.extension.service.IService;
import com.my12306.common.util.PageUtils;
import com.my12306.common.util.response.ResponseData;
import com.my12306.user.model.po.auth.RoleEntity;
import com.my12306.user.model.vo.RoleVo;

import java.util.List;
import java.util.Map;

/**
 * @author ËÕÄÁÏ¦
 * @email xxxxxx@qq.com
 * @date 2020-05-19 05:10:09
 */
public interface RoleService extends IService<RoleEntity> {

    PageUtils queryPage(Map<String, Object> params);

    List<RoleEntity> selectAllRole();

    ResponseData updateRoleById(RoleEntity roleEntity);

    /**
     * 根据角色id进行批量生产：1.删除角色 2.删除角色管理表，角色权限表,角色用户表
     *
     * @param ids
     * @return
     */
    ResponseData deleteBatchByIds(List<Long> ids);

    /**
     * 根据RoleVo，添加角色和角色与资源自己的关联关系
     * 1.添加角色 2.添加角色所拥有的资源-角色资源表
     *
     * @param roleVo
     */
    Boolean saveRoleAndPerms(RoleVo roleVo);

    /**
     * 根据角色id 修改角色以及角色和权限的关系
     * 1.修改角色
     * 2.删除修改相关权限 -删除-添加
     *
     * @param roleVo
     */
    void updateBatchRoleAndPerms(RoleVo roleVo);

    /**
     * 根据用户角色名字查询用户角色id
     *
     * @param user_role
     * @return
     */
    Long queryRoleIdByRoleName(String user_role);
}

